package com.lzh.yupao.once;

import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.ExcelReader;
import com.alibaba.excel.context.AnalysisContext;
import com.alibaba.excel.read.listener.PageReadListener;
import com.alibaba.excel.read.metadata.ReadSheet;
import com.alibaba.excel.util.ListUtils;
import com.google.gson.Gson;
import lombok.extern.slf4j.Slf4j;

import java.io.File;
import java.util.List;

/**
 * 导入Excel
 *
 * @author LZH
 * @date 2023/5/14
 */
@Slf4j
public class ImportExcel {

    private static String fileName = "D:\\dev-vue-boot\\knowledge-planet\\yupao-backend\\src\\main\\resources\\testPlanetImport.xlsx";

    /**
     * 读取数据
     */
    public static void main(String[] args) {
//        readByListener();

        synchronousRead();
    }

    /**
     * 同步读
     */
    public static void synchronousRead() {
        // 这里 需要指定读用哪个class去读，然后读取第一个sheet 同步读取会自动finish
        List<PlanetTableUserInfo> list =
                EasyExcel.read(fileName).head(PlanetTableUserInfo.class).sheet().doReadSync();
        for (PlanetTableUserInfo userInfo : list) {
            System.out.println(userInfo);
        }
    }

    /**
     * 监听器读
     */
    public static void readByListener() {
        // 写法1：JDK8+ ,不用额外写一个DemoDataListener
        // since: 3.0.0-beta1

        // 这里默认每次会读取100条数据 然后返回过来 直接调用使用数据就行
        // 具体需要返回多少行可以在`PageReadListener`的构造函数设置
        EasyExcel.read(fileName, PlanetTableUserInfo.class, new TableListener()).sheet().doRead();
    }
}
